import copy
from abc import ABC

from spatialmath import SE3


class Geometry3D(ABC):

    def __init__(self, base: SE3) -> None:
        super().__init__()
        self.__base = copy.deepcopy(base)

    @property
    def base(self) -> SE3:
        return copy.deepcopy(self.__base)

    @base.setter
    def base(self, base: SE3):
        self.__base = copy.deepcopy(base)

    def get_t(self):
        return copy.deepcopy(self.__base.t)
